var interval; // 记时器
var audio
Page({

  /**
   * 页面的初始数据
   */
  data: {
    mask: false,
    historylist: [{
      play: true, // true 表示等待播放   false 表示正在播放
      totalmusic: 100, // 音频的总时长 秒值  需等待接口赋值
      seconds: 0, // 本地保存的秒值记录 ，进度条的值
      time: 0,
      total: '1:40', // 音频总时长 分秒值  等待接口赋值
      during: '00:00', // 音频的分秒值   显示在进度条左侧的数据
      playUrl: 'http://source.blistening.cn/bt_source/ttbt/audio/%E5%B0%8F%E9%A9%AC%E8%BF%87%E6%B2%B3.mp3'
    }, {
      play: true,
      totalmusic: 100,
      seconds: 0,
      time: 0,
      total: '1:40',
      during: '00:00',
      playUrl: 'http://source.blistening.cn/bt_source/ttbt/audio/%E5%B0%8F%E9%A9%AC%E8%BF%87%E6%B2%B3.mp3'
    }]
  },


  startplay: function () {
    var vm = this
    var list = vm.data.historylist;

  
    audio.src = list[vm.data.playindex].playUrl;
    audio.startTime = list[vm.data.playindex].seconds
    // audio.src = "http://source.blistening.cn/bt_source/ttbt/audio/shancunfengliuxiaozi/001.mp3"
    audio.play();
    audio.onCanplay(() => {
      console.log(audio.duration)
    })
    audio.onPlay(() => {
      console.log('开始播放')
    })
    setTimeout(() => {
      console.log("音频长度" + audio.duration)
      console.log(Math.round(audio.duration))
      console.log(getApp().s_to_hs(Math.round(audio.duration)))
      list[vm.data.playindex].totalmusic = audio.duration
      list[vm.data.playindex].total = getApp().s_to_hs(Math.round(audio.duration))
      vm.setData({
        historylist: list
      })
      vm.startcount();
    }, 1000)

  },


  // 点击播放按钮 
  play: function (event) {
    // 播放一个音乐的时候如果其他在播放，停止其他定时器   
    clearInterval(interval)
    var vm = this
    var index = event.currentTarget.dataset.index;
    var list = vm.data.historylist;
    for (var i = 0; i < list.length; i++) {
      // 把其他所有的音频都设置为等待播放状态 ，显示等待播放按钮
      list[i].play = true;
    }
    list[index].play = !list[index].play
    audio.pause();
    this.setData({
      historylist: list,
      playindex: index
    })
    vm.startplay()
  },


  // 开启一个记时器，为当前音频计时显示在左侧秒值   并显示在进度条上
  startcount: function () {
    var vm = this
    interval = setInterval(function () {

      // 获取是否有上次播放的记录 并将保存的秒值转化成分秒值
      var during = getApp().s_to_hs(vm.data.historylist[vm.data.playindex].seconds)


      // 如果播放完成，停止计时并清空记录 
      if (vm.data.historylist[vm.data.playindex].seconds == vm.data.historylist[vm.data.playindex].totalmusic) {
        clearInterval(interval);
        vm.cleartime(vm.data.playindex);
        return
      }


      // 每秒更新左侧秒值和进度条值
      var list = vm.data.historylist;
      list[vm.data.playindex].during = during;
      list[vm.data.playindex].seconds = list[vm.data.playindex].seconds + 1;
      vm.setData({
        historylist: list
      })
    }, 1000)
  },

  // 进度条拖动联动
  slidechange: function (event) {
    var vm = this
    var index = event.currentTarget.dataset.index;
    var list = vm.data.historylist;
    var during = getApp().s_to_hs(event.detail.value)
    list[index].during = during;
    list[index].seconds = event.detail.value;
    audio.seek(event.detail.value)
    vm.setData({
      historylist: list
    })
  },

  // 播放完成清空左侧秒值  和  进度值
  cleartime: function (index) {
    var vm = this
    var list = vm.data.historylist;
    list[index].during = "00:00"; // 清空左侧秒值
    list[index].seconds = 0; // 清空进度值和本地记录
    list[index].play = !list[index].play
    this.setData({
      historylist: list
    })
  },

  // 点击暂停  停止计时并不清空左侧秒值和进度条， 显示播放按钮
  stop: function (event) {
    var vm = this
    var index = event.currentTarget.dataset.index;
    var list = vm.data.historylist;
    list[index].play = !list[index].play
    this.setData({
      historylist: list
    })
    audio.pause();
    clearInterval(interval)
  },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    audio = wx.createInnerAudioContext();
  },
  tosearch: function() {
    wx.navigateTo({
      url: '../../search/search',
    })
  },
  dismiss: function() {
    this.setData({
      mask: false
    })
  },
  close: function() {
    this.setData({
      mask: true
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {
    audio.pause();
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})